<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
    <style>
        * {
            margin: 0;
            padding: 0;
            box-sizing: border-box;
        }
        html,body {
            height: 100%;
        }
        div.container {
            height: 100%;
            background: #dddddd;
            display: grid;
            grid-template-columns: 100px 100px 100px;
            grid-template-rows: 100px 100px 100px;
            /*grid-auto-flow: row; !* 项目的排列顺序，默认是先行后列：先把第一行放满后，再依次放第二行 *!*/
            grid-auto-flow: row dense; /* 先行后列，dense：尽可能紧密的排列，不要出现空白区域*/
            /*grid-auto-flow: column; !* 先列后行：先把第一列放满后，再依次放第二列 *!*/
        }
        div.item {
            background: #505050;
            border: 1px solid #fff;
            font-size: 16px;
            text-align: center;
            color: #fff;
        }
        div.one {
            /* 独占两个单元格 */
            grid-column-start: 1;
            grid-column-end: 3;
        }
        .two {
            /* 独占两个单元格 */
            grid-column-start: 1;
            grid-column-end: 3;
        }
        /*
        1号项目后面的位置是空的，这是因为3号项目默认跟着2号项目，所以会排在2号项目后面。
        现在修改设置，设为row dense，表示"先行后列"，并且尽可能紧密填满，尽量不出现空格。*/
    </style>
</head>
<body>
    <div class="container">
        <div class="item one">1</div>
        <div class="item two">2</div>
        <div class="item">3</div>
        <div class="item">4</div>
        <div class="item five">5</div>
        <div class="item">6</div>
        <div class="item">7</div>
        <div class="item">8</div>
        <div class="item">9</div>
<!--        <div class="item"></div>-->
    </div>
</body>
</html>